/**************************************************************************************
 * Date 		By				Description
 * ------------------------------------------------------------------------------------
 * 03-26-07		Noah V			Created
 *
 **************************************************************************************/

namespace NAFx.Base
{
    /// <summary>
    /// This delegate returns an array containing all the IDs for the
    /// fallback of the requested id.
    /// If the array is null, then no fallback exists
    /// </summary>
    /// <param name="id">The input resource id</param>
    /// <returns>The fallback string ids array. The order is the fallback order</returns>
    public delegate string[] FallbackDelegate(string id);

    /// <remarks>
    /// The interface defining the fallback policy for SmartObjects.
    /// </remarks>
    public interface IFallbackPolicy
    {
        /// <summary>
        /// The FallbackDelete used for the implementing class of ISmartObject
        /// Different classes can shared the same delegate
        /// </summary>
        FallbackDelegate FallbackPolicy
        { get;	}
    }
}
